using hao_Dto.User;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace User.Service.Role
{
    public interface IRoleService
    {
        /// <summary>
        /// 获取所有角色
        /// </summary>
        Task<List<RoleDto>> GetAllRolesAsync();
        
        /// <summary>
        /// 分页获取角色列表
        /// </summary>
        Task<(List<RoleDto> Roles, int TotalCount)> GetRolesPagedAsync(RolePagedQueryDto queryDto);
        
        /// <summary>
        /// 根据ID获取角色
        /// </summary>
        Task<RoleDto> GetRoleByIdAsync(Guid roleId);
        
        /// <summary>
        /// 创建角色
        /// </summary>
        Task<RoleDto> CreateRoleAsync(CreateRoleDto createRoleDto);
        
        /// <summary>
        /// 更新角色
        /// </summary>
        Task<RoleDto> UpdateRoleAsync(Guid roleId, UpdateRoleDto updateRoleDto);
        
        /// <summary>
        /// 删除角色
        /// </summary>
        Task DeleteRoleAsync(Guid roleId);
    }
}